Add case insensitive searches on both GPX reads and magproto icon lookups.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 25 Jan 2003 20:07:55 +0000 (20:07 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 25 Jan 2003 20:07:55 +0000 (20:07 +0000)
gpsbabel/gpx.c
gpsbabel/magproto.c
gpsbabel/util.c

index e9150c38970eca20efcad9d26761df94a5e70dcd..52d98027e5edecc9694a9966095c4ebf7b8b68e6 100644 (file)
@@ -349,7 +349,7 @@ gs_mktype(char *t)
        int sz = sizeof(gs_type_map) / sizeof(gs_type_map[0]);
 
        for (i = 0; i < sz; i++) {
-               if (0 == strcmp(t, gs_type_map[i].name)) {
+               if (0 == case_ignore_strcmp(t, gs_type_map[i].name)) {
                        return gs_type_map[i].type;
                }
        }
index 3ca11c8d25fda2cb90d2595e83956c3588d2b2e3..86611fbff81e70cebc981c55378182cf44ff39bb 100644 (file)
@@ -916,7 +916,7 @@ mag_find_descr_from_token(const char *token)
        }
 
        for (i = icon_mapping; i->token; i++) {
-               if (strcmp(token, i->token) == 0)
+               if (case_ignore_strcmp(token, i->token) == 0)
                        return i->icon;
        }
        return icon_mapping[0].icon;
@@ -932,7 +932,7 @@ mag_find_token_from_descr(const char *icon)
        }
 
        for (i = icon_mapping; i->token; i++) {
-               if (strcmp(icon, i->icon) == 0)
+               if (case_ignore_strcmp(icon, i->icon) == 0)
                        return i->token;
        }
        return icon_mapping[0].token;
index 2ea444037e7299c5b6d031b212af3108b8aee433..0f8b30d05040d5cd54c24f531ec5aef78715c35e 100644 (file)
@@ -107,6 +107,20 @@ rtrim(char *s)
        }
 }
 
+/*
+ *   Like strcmp, but case insensitive.  Like Berkeley's strcasecmp.
+ */
+
+int 
+case_ignore_strcmp(const char *s1, const char *s2)
+{
+       for(;toupper(*s1) == toupper(*s2); ++ s1, ++s2) {
+               if (*s1 == 0)
+                       return 0;
+       }
+       return (toupper(*s1) < toupper(*s2)) ? -1 : +1;
+
+}
 
 coord
 mkposn(const char *string)